Since Dr. E. F. Codd proposed an initial theoretical model in 1970, a relation-type database has become an essential infrastructure in all information systems, and ranks only second to operating systems. Today, large-scale systems, which can operate without databases, have not existed any more.
In actual application, due to the complicacy of service logics and the modularized design of functions, one information system is always deployed with multiple databases, and the multiple databases have to collaborate and share data with each other, and this requires data synchronization among the databases. In order to achieve this purpose, mainstream database vendors have developed their respective data synchronization technologies, such as, Streams from Oracle and Replication Server from Sybase. FIG. 1 shows a diagram of a traditional data synchronization process, and as shown in FIG. 1, Logical Change Records (LCRs) are captured from a database redo log in a source database, and are applied one by one to a target database according to the occurrence sequence of the LCRs, so that the synchronization of data in the target database with data in the source database is achieved.
LCR is a general name of a database change record in the technical field of databases, one LCR shows one specific Database Manipulation Language (DML) operation on one specific record in a source database, the contents of the LCR include: an operation type, a changed field list, a field value before change, a field value after change, a field name of a primary key, a field value of the primary key and so on; according to these pieces of information, the DML operation can be repeated.
The current data synchronization technologies have the following defects:
a source database sends all changed LCRs to a target database, therefore, when the source database changes frequently, the work load of LCR transmission is large.